最近遇到了一个问题,由于我们的服务采用dubbo框架,却近几次服务升级,总出现dubbo宕机的情况,经过一番排查,和研发同事的协助,终于在日志中找到线索:

报错日志:

org.apache.coyote.AbstractProtocol pause

Pausing ProtocolHandler

org.apache.catalina.core.StandardService stopInternal

Stopping service Catalina

org.apache.coyote.AbstractProtocol stop

Stopping ProtocolHandler

org.apache.coyote.AbstractProtocol destroy

Destroying ProtocolHandler

经过网上搜索,原来是由于不规范操作,导致,具体情况如下:

$ cat test.sh

!/bin/bash

cd /data/server/tomcat/bin/

./catalina.sh start

tail -f /data/server/tomcat/logs/catalina.out

tomcat启动为后,当前shell进程并没有退出,而是挂住在tail进程,往终端输出日志内容。这种情况下,如果用户直接关闭ssh终端的窗口(用鼠标或快捷键),则java进程也会退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。

经询问相关负责升级的同事,确实操作存在如上现象,问题得以解决。


认真做自己
7 声望1 粉丝